package cn.shiwei.hr.repository;

import cn.shiwei.hr.exception.GlobalException;
import org.springframework.util.StringUtils;

import static cn.shiwei.hr.constants.BaseConstants.course.COURSE_IS_NOT_ON_THE_SHELF;
import static cn.shiwei.hr.constants.BaseConstants.course.COURSE_IS_ON_THE_SHELF;

public class AssertUtil {

    /**
     * 断言对象为空
     * 为null报错
     * @param obj 对象
     * @param message 错误信息
     */
    public static void isNull(Object obj, String message){
        if(obj == null){
            throw new GlobalException(message);
        }
    }

    /**
     * 断言对象不为空
     * @param obj 对象
     * @param message 错误信息
     */
    public static void noNull(Object obj, String message){
        if(obj != null){
            throw new GlobalException(message);
        }
    }

    /**
     * 断言字符串为空或空字符串
     * 为空异常
     * @param obj 字符串
     * @param message 错误信息
     */
    public static void stringIsEmpty(String obj, String message){
        if(StringUtils.isEmpty(obj)){
            throw new GlobalException(message);
        }
    }

    /**
     * 断言字符串不为空或空字符串
     * 为空, 返回 false
     * @param obj 字符串
     * @param message 错误信息
     */
    public static void stringIsNotEmpty(String obj, String message){
        if(StringUtils.hasText(obj)){
            throw new GlobalException(message);
        }
    }

    /**
     * 判断是否上架,如果obj的值等于指定的值, 则为上架
     * @param obj
     * @param message
     */
    public static void idOnTheShelf(Integer obj, String message) {
        if(Integer.valueOf(COURSE_IS_ON_THE_SHELF).equals(obj)){
            throw new GlobalException(message);
        }
    }

    /**
     * 是假报错
     * @param success
     * @param message
     */
    public static void isTrue(boolean success, String message) {
        if(!success){
            throw new GlobalException(message);
        }
    }

    public static void idOffTheShelf(Integer status, String message) {
        if(Integer.valueOf(COURSE_IS_NOT_ON_THE_SHELF).equals(status)){
            throw new GlobalException(message);
        }
    }

    /**
     * 是真报错
     * @param success
     * @param message
     */
    public static void isFalse(boolean success, String message) {
        if(success){
            throw new GlobalException(message);
        }
    }
}
